package com.chukun.multi.producerconsumer.workstealing;

import com.chukun.multi.producerconsumer.ProductChannel;

import java.util.concurrent.BlockingDeque;

/**
 * 继承 {@link ProductChannel} 接口，定义工作窃取队列的 {@link ProductChannel#take()} 方法
 * @author chukun
 * @param <T>
 */
public interface WorkStealingEnabledChannel<T> extends ProductChannel<T> {

    T take(BlockingDeque<T> preferredQueue) throws InterruptedException;
}
